The present invention relates to a method and apparatus of supporting production of application program layout, and in particular, to a method and apparatus of supporting production of application program layout in which program parts beforehand generated for respective functions are utilized as constituent components of a new program and a program code product therefor.
When creating an application program, there has been increasing employed a process in which program parts subdivided into associated functions are used. In some package programs available in the market, components thereof are created as program parts which can be invoked for operation by another program.
For example, the database management program called "Access" of Microsoft described in Jon Udell, "COMPONENTWARE", BYTE, May 1994, pp. 46-56 has constitution in which centered on table parts controlling data items, program parts as such programs as statistic analysis and graph programs can be coupled with each other. These program parts can be called by external programs. Available program parts additionally includes input/output screens, work sheets for table calculation, data analyses, numeric calculations, etc.
In the job to create a new program using such arts, there are achieved a job to modify or add the function of a part and a job to describe a program which establishes a link between parts. Namely, the application program creating job includes an operation to generate and modify program parts and an operation to combine the parts with each other.
Thanks to the utilization of program parts, the programmer is not required to generate the program parts, leading to an advantage that program errors are avoided and the operation of program inspection can be dispensed with. As a result, it can be expected that increase productivity of application programs is increased.
To produce a program using program parts, it is essential to choose appropriate program parts. There have been provided a large number of program parts including those of the example of "Access". It is not easy to select therefrom optimal parts satisfying all requirements related to the function, performance, program size, and the like.
Recently, the environments supporting application program construction have been studied and developed in relation to the repository technology. That is, usage of databases can be considered as a method of supporting selection of program pats. For example, such information items as a function and a performance characteristic are added to program parts to be stored in a database. Using such a database, it will be possible to search program parts, for example, for a function of "displaying a chart of change in stock prices" and performance of "chart display speed of 0.1 second or less". According to results of the search, the programmer acquires the program parts from the database to incorporate them in an application program.
A huge number of program parts are available in the current market and hence it is possible to use such parts for an application to be generated. Simply speaking, if ten candidate program parts exist for each of ten functions constituting the application program, it will be required to investigate one hundred combinations therebetween. In this case, heretofore, investigation has been carried out for only several combinations assumed to be acceptable by the developer. However, the investigating procedure is not automatically executed and there is required a large volume of human power. In a case in which portions of the program parts are unsatisfactory, for example, it is necessary to modify program parts according to combinations therebetween, the procedure of evaluating the overall program may possibly be disturbed.
Additionally, some program parts resultant from the search through the repository are not necessarily optimal to configure the program under development. Program parts are used in various situations and hence it cannot be guaranteed that the program parts develop the same performance in any cases. Furthermore, the performance is remarkable altered by other program parts utilized.
In addition, for the program evaluation, there are employed in addition to the function, speed, and program size, the maintenability, reliability, price, interface program generation environments, etc. In consequence, the prior art is attended with a program that only in the final state in which the application program is generated through assemblage of program parts, it can be recognized that the performance is unsatisfactory.
In this connection, according to, for example, an article Guy L. Steele Jr.; "Common Lisp Object System" Digital Press, 1990, pp. 770-815, there has been developed a method in which parts are actually operated for the confirmation of appropriateness thereof. In the CLOS processing system, at a temporary interruption of a program, a function beforehand executed can be changed. Furthermore, it is possible to vary definition of an object which can be regarded as a program part. In addition, when a plurality of objects are assigned with an identical message interface, an object which receive a message can be dynamically altered (in association with the execution environments). In such a CLOS processing system, although the combinations between parts can changed during execution, replacement of parts is not automatically carried out. Namely, a target combination between parts is required to be specified by a program.